package reportsV20210630

import "time"

type GetReportsRequest struct {
	ReportTypes        []string  // 可选：报告类型
	ProcessingStatuses []string  // 可选：处理状态
	MarketplaceIds     []string  // 可选：市场 ID
	PageSize           int       // 可选：分页大小
	CreatedSince       time.Time // 可选：起始创建时间
	CreatedUntil       time.Time // 可选：截止创建时间
	NextToken          string    // 可选：分页标识
}

// CreateReportRequest represents the request parameters for creating a report
type CreateReportRequest struct {
	ReportType     string            `json:"reportType"`
	MarketplaceIds []string          `json:"marketplaceIds"`
	ReportOptions  map[string]string `json:"reportOptions,omitempty"`
	DataStartTime  *time.Time        `json:"dataStartTime,omitempty"`
	DataEndTime    *time.Time        `json:"dataEndTime,omitempty"`
}

// GetReportRequest represents the request parameters for fetching a report
type GetReportRequest struct {
	ReportId string
}

// CancelReportRequest represents the request parameters for cancelling a report
type CancelReportRequest struct {
	ReportId string
}

// GetReportSchedulesRequest represents the request parameters for fetching report schedules
type GetReportSchedulesRequest struct {
	ReportTypes []string
}

// CreateReportScheduleRequest represents the request parameters for creating a report schedule
type CreateReportScheduleRequest struct {
	ReportType             string            `json:"reportType"`
	MarketplaceIds         []string          `json:"marketplaceIds"`
	ReportOptions          map[string]string `json:"reportOptions,omitempty"`
	Period                 string            `json:"period"`
	NextReportCreationTime time.Time         `json:"nextReportCreationTime,omitempty"`
}
type GetReportScheduleRequest struct {
	ReportScheduleId string
}

// CancelReportScheduleRequest represents the request parameters for cancelling a report schedule
type CancelReportScheduleRequest struct {
	ReportScheduleId string
}

// GetReportDocumentRequest represents the request parameters for fetching a report document
type GetReportDocumentRequest struct {
	ReportDocumentId string
}
